package com.quxiu.system.service;

import com.quxiu.system.domain.vo.BpmApprovalBoard;
import com.quxiu.system.domain.vo.BpmApprovalVo;
import com.quxiu.system.domain.vo.BpmRollbackNodeVo;

import java.util.List;

public interface IBpmApprovalService {

    /**
     * 提交流程实例
     * @param procInstId 流程实例ID
     */
    void submitProcInst(Long procInstId);

    /**
     * 审批
     * @param params
     */
    void approval(BpmApprovalVo params);

    /**
     * 撤销
     * @param params
     */
    void revoke(BpmApprovalVo params);

    /**
     * 加签
     * @param params
     */
    void addSign(BpmApprovalVo params);

    /**
     * 转交
     * @param params
     * @param isAdmin 是否为管理员操作
     */
    void forward(BpmApprovalVo params, boolean isAdmin);

    /**
     * 管理员转交
     * @param params
     */
    void forwardByAdmin(BpmApprovalVo params);

    /**
     * 回退
     * @param params
     */
    void rollback(BpmApprovalVo params);

    /**
     * 获取回退节点
     * @param params
     */
    List<BpmRollbackNodeVo> getRollbackNodes(BpmApprovalVo params);

}
